#ifndef NMC_FLOODFILLCOMMAND_HPP
#define NMC_FLOODFILLCOMMAND_HPP

#include "tilemap.hpp"

#include "editor/command.hpp"

#include <vector>

namespace nmc
{
    class FloodFillCommand: public Command
    {
    public:
        FloodFillCommand(TileMap* tileMap, 
                         int x, 
                         int y, 
                         int width, 
                         int height, 
                         int tile, 
                         int tileFlags);
        void execute();
        void undo();

    protected:
        TileMap* mTileMap;
        int mX;
        int mY;
        int mWidth;
        int mHeight;
        int mTile;
        std::vector<int> mOldTiles;
        int mTileFlags;
        std::vector<int> mOldTileFlags;
    };
}
#endif